package com.bjb.vr.common.dto;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 设备表
 * @TableName res_device
 */
@TableName(value ="res_device")
@Data
public class ResDevice implements Serializable {
    /**
     *
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 租户ID
     */
    @TableField(value = "tenant_id", fill = FieldFill.INSERT)
    private String tenantId;

    /**
     * 数据ID用于同步
     */
    @TableField(value = "data_id", fill = FieldFill.INSERT)
    private Long dataId;

    /**
     * 设备标识符
     */
    @TableField(value = "udid")
    private String udid;

    /**
     * 设备类型 1:眼镜 2:平板 3:学习角
     */
    @TableField(value = "dev_type")
    private Integer devType;

    /**
     * 设备型号 PICO NEO3   PICO G2 4K
     */
    @TableField(value = "dev_model")
    private String devModel;

    /**
     * 设备mac地址
     */
    @TableField(value = "mac")
    private String mac;

    /**
     * 电量
     */
    @TableField(value = "battery")
    private Double battery;

    /**
     * ip
     */
    @TableField(value = "ip")
    private String ip;

    /**
     * 剩余内存
     */
    @TableField(value = "remain_mem")
    private Long remainMem;

    /**
     * Sd卡剩余空间
     */
    @TableField(value = "sd_remain_mem")
    private Long sdRemainMem;

    /**
     * 总内存
     */
    @TableField(value = "total_mem")
    private Long totalMem;

    /**
     * Sd卡总空间
     */
    @TableField(value = "sd_total_mem")
    private Long sdTotalMem;

    /**
     * 安装课程
     */
    @TableField(value = "courses")
    private String courses;

    /**
     * 启用状态 0:禁用  1:启用
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 在线离线状态 0:离线 1:在线
     */
    @TableField(value = "online_state")
    private Integer onlineState;

    /**
     * 当前课程id
     */
    @TableField(value = "cur_content_id")
    private Long curContentId;

    /**
     * 课程加载状态 1：加载完成 2：加载失败 3：加载中
     */
    @TableField(value = "content_load_state")
    private Integer contentLoadState;

    /**
     * 课程加载失败原因
     */
    @TableField(value = "content_load_msg")
    private String contentLoadMsg;

    /**
     * 当前更新资源包id
     */
    @TableField(value = "cur_bundle_id")
    private Long curBundleId;

    /**
     * 资源包下载安装状态
     1:安装成功 2：安装失败 3：安装中
     4：下载完成 5：下载失败 6：下载中
     */
    @TableField(value = "update_bundle_state")
    private Integer updateBundleState;

    /**
     * 资源包下载安装失败原因
     */
    @TableField(value = "update_bundle_msg")
    private String updateBundleMsg;

    /**
     * 单机联网模式 1:单机 2:联网
     */
    @TableField(value = "mode")
    private Integer mode;

    /**
     * 设备厂家 PICO
     */
    @TableField(value = "dev_factory")
    private String devFactory;

    /**
     * 有效开始时间
     */
    @TableField(value = "valid_begin")
    private LocalDate validBegin;

    /**
     * 有效结束时间
     */
    @TableField(value = "valid_end")
    private LocalDate validEnd;

    /**
     * 3:播放 4:暂停
     */
    @TableField(value = "video_state")
    private Integer videoState;

    /**
     * 1:佩戴 2:未佩戴
     */
    @TableField(value = "wear_state")
    private Integer wearState;

    /**
     * 锁定状态 1:锁定 2:解锁
     */
    @TableField(value = "lock_state")
    private Integer lockState;

    /**
     * 上课状态 1:上课 2：下课
     */
    @TableField(value = "use_state")
    private Integer useState;

    /**
     * 控制模式  1:教学 2:自由
     */
    @TableField(value = "ctrl_mode")
    private Integer ctrlMode;

    /**
     * 声音状态 1:开启 2:静音
     */
    @TableField(value = "sound_state")
    private Integer soundState;

    /**
     * 是否需要更新大厅 1:需要 2:不需要 3:升级完成
     */
    @TableField(value = "apk_need_upd_state")
    private Integer apkNeedUpdState;

    /**
     * 当前设备安装大厅apk版本名
     */
    @TableField(value = "apk_ver_name")
    private String apkVerName;

    /**
     * 关联系统更新表id，关联头盔大厅apk更新详情
     */
    @TableField(value = "sys_update_id")
    private Long sysUpdateId;

    /**
     * 课程资源手动更新标记 1:手动更新 2:自动更新 3:不更新
     */
    @TableField(value = "cont_upd_state")
    private Integer contUpdState;

    /**
     * 校验token
     */
    @TableField(value = "token")
    private String token;

    /**
     * 创建时间
     */
    @TableField(value = "gmt_create")
    private LocalDateTime gmtCreate;

    /**
     * 更新时间
     */
    @TableField(value = "gmt_modified")
    private LocalDateTime gmtModified;

    /**
     * 设备名字
     */
    @TableField(value = "dev_name")
    private String devName;

    /**
     * 设备编号
     */
    @TableField(value = "dev_number")
    private String devNumber;

    /**
     * 主题类型 1:党建
     */
    @TableField(value = "theme_type")
    private Integer themeType;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
